"""
example08 - 幸运的女人（Josephu环）

有15个男人和15个女人坐船出海，船坏了，需要把其中15个人扔到海里，其他人才能活下来；
所有人围成一圈，有某人从1开始依次报数，报到9的人被扔到海里，下一个人重新从1开始报数，
直到将15个人扔到海里。最后，15个女人都幸存了下来，15个男人都被扔到了海里。
问原先哪些位置是男人，哪些位置是女人。

Author: Administrator
Date: 2024/1/9
"""

persons = [True] * 30
index, counter, number = 0, 0, 0
while counter < 15:
    if persons[index]:
        number += 1
        if number == 9:
            persons[index] = False
            counter += 1
            number = 0
    index += 1
    if index == 30:
        index = 0
for person in persons:
    # 三元条件运算 ---> if后面的表达式为True，取if前面的值，否则去else后面的值
    # 相当于简写版（精简版）的if...else...结构
    print('女' if person else '男', end=' ')
print()
# 方法二
persons = [i for i in range(1, 31)]
for _ in range(15):
    persons = persons[9:] + persons[:8]
for i in range(1, 31):
    # 三元条件运算 ---> if后面的表达式为True，取if前面的值，否则去else后面的值
    # 相当于简写版（精简版）的if...else...结构
    print('女' if i in persons else '男', end=' ')